package com.kuns.subject.common.enums;

import lombok.Getter;

@Getter
public enum ResultCodeEnum {

    /**
     * 单例模式：每个枚举常量都是类的唯一实例，Java 会保证在整个应用程序中只有一个对应的实例。
     */
    SUCCESS(200, "成功"), // 这里就相当于调用了这个私有的构造方法
    FAIL(500, "失败");

    public int code;

    public String desc;

    /**
     * 私有构造函数，只能在枚举内部调用，用于初始化每个枚举常量的 code 和 desc 属性。
     * @param code
     * @param desc
     */
    ResultCodeEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public static ResultCodeEnum getByCode(int codeVal) {
        for (ResultCodeEnum resultCodeEnum : ResultCodeEnum.values()) {
            if (resultCodeEnum.code == codeVal) {
                return resultCodeEnum;
            }
        }
        return null;
    }

}
